Methods for transmitting data from a source to multiple users over a network fall into one of three categories. Unicast is a point-to-point delivery mechanism, where a source transmits a separate stream of data for each user. The volume of data transmitted increases linearly with the number of users, leading to the consumption of an unacceptably high level of resources where the number of recipients is large. The remaining two categories define point-to-multipoint or multipoint-to-multipoint delivery mechanisms. Broadcasting refers to the transmission of data to all hosts on a network. While this may work well in small networks, it requires the replication of a large number of data packets when used in a wide area network with many users. Furthermore, this method can be wasteful where the data is not of interest to a significant proportion of the recipients.
The third category is multicasting, which is the simultaneous transmission of data to a select group of users. Multicasting has particular application in fields requiring streaming of content to multiple users in real time, such as news feeds, online gaming, Digital Video Broadcasting (DVB) and videoconferencing. Overviews of this technique are given in “Multicast Networking and Application” by C. Kenneth Miller, Addison-Wesley 1988 [ISBN 0-201-30979-3] and in “Deploying IP MULTICAST in the Enterprise” by T. Maufer, Prentice Hall PTR, 1998 [ISBN 0-13-897687-2]. The use of multicasting in a cellular radio access network is discussed in “Multimedia Broadcast/Multicast Service”, 3rd Generation Partnership Project Technical Specification 3GPP™ TS 22.146 v1.0.0 2001.
FIG. 1 is a block diagram of a prior communication system 1, for multicasting information from a content provider, i.e., host 2, to a plurality of receiver hosts 3 via a first network 4, such as the Internet, and a radio access network 5. For simplicity, a data path 6 through the Internet 4 is depicted as extending directly from the content provider 2 to a router 7 without intervening stages, such as other transmitters, routers or servers, which may be located between these nodes. Data paths leading from the content provider 2 to the receiver hosts 3a-3c diverge at the router 7. Situations where this divergence occurs include those where the receiver hosts 3 do not belong to the same sub-network, where the receiver hosts 3 are served by different transmitters 8 or where the radio access network 5 is not multicast enabled.
Instead of sending a separate stream of data packets A-D for each individual receiver host 3a, 3b, the content provider 2 provides a single data stream 6, which is transmitted over the Internet 4 to the point at which the paths to the individual receiver hosts 3a, 3b diverge, which in this example comprises the router 7. At this point, the data stream of packets is replicated for onward transmission to the receiver hosts 3a, 3b individually, the router 7 being multicast-enabled in order to carry out the replication of the data. It will be understood that other routers (not shown) in the network are also multicast enabled so that the data can be multicast to other receiver hosts individually. Thus, the router 7 copies incoming data packets A-E, producing duplicate data streams 9a, 9b for transmission to the receiver hosts 3a, 3b. As the content provider 2 transmits only a single data stream 6, the use of its system resources and the network load are reduced when compared with a unicast system. Furthermore, as the transmission of replicated data is kept to a minimum, multicasting may be used in wide area networks where broadcasting is unfeasible.
There are two types of multicasting services. In the first, a content provider has a reserved bandwidth for delivering a predetermined service to a group of end-users. The second type allows end-users to select the service provided to them. In both cases, a user can receive the multicast stream of data by submitting a request to join the group by sending a message to the content provider in a format specified by the Internet Engineering Task Force (IETF). The user can leave the multicast group by submitting a corresponding request.
Multicasting is a suitable mechanism for providing end-users with a continuous service but has limited applicability for “one-shot” transmissions. For example, a group of users may require the delivery of a file, for example, a multimedia clip, a web page, an mp3 file, a document or a software module for an application or a game. Referring again to FIG. 1, the users of receiver hosts 3a, 3b may both request the file, which comprises data packets A-E, from the content provider 2. As the data stream 6 is received by the router 7, the data packets are copied and forwarded to a radio transmitter 8, which transmits the encapsulated data packets to receiver hosts 3a, 3b as data streams 9a, 9b over a wireless network.
However, there are currently no provisions for allowing a host to join an ongoing file delivery transmission, so a third host 3c, requesting a file after the start of the transmission, would be excluded from the multicast file delivery transmission. Even if the third host 3c were to join the file delivery transmission, data packets A-C would have been missed and it is probable that the user of host 3c would require the entire file. This exclusion increases the likelihood that a transmission is received by a low number of recipients, or even a single user. Requests submitted after the delivery of the data packets A-E has commenced are accommodated by repeating the file delivery transmission.
Prior systems have addressed this problem by defining a schedule of forthcoming transmissions. A user can subscribe to a delivery list for a particular file, or set of files, and receive the relevant data at the next scheduled opportunity. However, this delivery mechanism does not respond directly to the user's requirements and is inflexible as, again, once the file delivery transmission has begun, any other further users requiring the same file are excluded and must subscribe to the next scheduled transmission.
In addition, a host 3b may drop one or more packets or, having received the first data packets A-C, become unable to receive the remaining packets D, E in a file delivery transmission. The host 3b cannot make use of the data packets it has received and, in order to receive the entire file, data packets A-E, must wait for file delivery transmission, which may necessitate joining another multicast group.
The problems associated with “one-shot” transmissions are exacerbated in systems for multicasting data to mobile devices. In particular, a mobile device receiving the data packets over a cellular communications network may be located in a first cell when joining the group and move into a different cell during the file delivery transmission. The mobile device cannot receive the remaining data packets in the file delivery transmission as the mobile device is no longer in the first cell.
The repetition of file delivery transmissions in order to accommodate further hosts and missed or dropped packets reduces the efficiency gain associated with multicasting and increases the load on the air interface bandwidth. As use of the air interface for the provision of Internet type services rises, the efficient use of air interface bandwidth will become an increasingly important consideration.